<html>
 <head>
  <meta charset="UTF-8">
 </head>
 <body>
  <h1 data-lake-id="a185z" id="a185z"><span data-lake-id="ua012b31e" id="ua012b31e">典型回答</span></h1>
  <p data-lake-id="u59aed0ab" id="u59aed0ab"><br></p>
  <p data-lake-id="u6fb2a5ba" id="u6fb2a5ba"><strong><span data-lake-id="u8f81b84a" id="u8f81b84a">InnoDB的数据页是InnoDB存储引擎中用于存储数据的基本单位。</span></strong><span data-lake-id="u546e9ed7" id="u546e9ed7">它是磁盘上的一个连续区域，通常大小为16KB当然，也可以通过配置进行调整。16KB就意味着Innodb的每次读写都是以 16KB 为单位的，一次从磁盘到内存的读取的最小是16KB，一次从内存到磁盘的持久化也是最小16KB。</span></p>
  <p data-lake-id="u520b887b" id="u520b887b"><br></p>
  <p data-lake-id="u2727adec" id="u2727adec"><span data-lake-id="u70e421c8" id="u70e421c8">B+树的每个节点都对应着一个数据页，包括根节点、非叶子节点和叶子节点。B+树通过节点之间的指针连接了不同层级的数据页，从而构建了一个有序的索引结构。</span></p>
  <p data-lake-id="uca04bf20" id="uca04bf20"><img src="https://cdn.nlark.com/yuque/0/2023/png/5378072/1698478842787-f028f2b0-5886-4be8-b49b-5ef262c70394.png?x-oss-process=image%2Fwatermark%2Ctype_d3F5LW1pY3JvaGVp%2Csize_43%2Ctext_SmF2YSA4IEd1IFA%3D%2Ccolor_FFFFFF%2Cshadow_50%2Ct_80%2Cg_se%2Cx_10%2Cy_10"></p>
  <p data-lake-id="u795fdc4b" id="u795fdc4b"><span data-lake-id="ub6054f8f" id="ub6054f8f">​</span><br></p>
  <p data-lake-id="ud6bc5eba" id="ud6bc5eba"><span data-lake-id="u70adf5c4" id="u70adf5c4">​</span><br></p>
  <p data-lake-id="u61b6d916" id="u61b6d916"><span data-lake-id="uc37cd0d9" id="uc37cd0d9">通过B+树的搜索过程，可以从根节点开始逐层遍历，最终到达叶子节点，找到所需的数据行。</span></p>
  <p data-lake-id="u6053008a" id="u6053008a"><br></p>
  <p data-lake-id="uda61d415" id="uda61d415"><span data-lake-id="u45a45a6b" id="u45a45a6b">所以，数据页是存储数据行的实际物理空间，以页为单位进行磁盘读写操作。B+树通过节点和指针的组织，构建了一个层次结构的索引，用于快速定位和访问数据行。</span></p>
  <p data-lake-id="ud55d88ee" id="ud55d88ee"><span data-lake-id="uc8e53827" id="uc8e53827">​</span><br></p>
  <p data-lake-id="ueb38e361" id="ueb38e361"><span data-lake-id="u20ce3631" id="u20ce3631">B+树的非叶子节点对应着数据页，其中存储着主键+指向子节点（即其他数据页）的指针。B+树的叶子节点包含实际的数据行，每个数据行存储在一个数据页中。</span></p>
  <p data-lake-id="u9b13dfd1" id="u9b13dfd1"><span data-lake-id="u8f898536" id="u8f898536">​</span><br></p>
  <p data-lake-id="u08760e0b" id="u08760e0b"><span data-lake-id="u2c456967" id="u2c456967">通过这种方式，InnoDB利用B+树和数据页的组合，实现了高效的数据存储和检索。B+树提供了快速的索引查找能力，而数据页提供了实际存储和管理数据行的机制。它们相互配合，使得InnoDB能够处理大规模数据的高效访问。</span></p>
  <p data-lake-id="u158e0347" id="u158e0347"><span data-lake-id="u753e5b4c" id="u753e5b4c">​</span><br></p>
  <h1 data-lake-id="AIt8h" id="AIt8h"><span data-lake-id="u4f4cbdc6" id="u4f4cbdc6">扩展知识</span></h1>
  <p data-lake-id="u098392a6" id="u098392a6"><br></p>
  <h2 data-lake-id="XFWlt" id="XFWlt"><span data-lake-id="ued96caa8" id="ued96caa8">数据页的构成</span></h2>
  <p data-lake-id="u8b9aea18" id="u8b9aea18"><br></p>
  <p data-lake-id="u59b8760c" id="u59b8760c"><span data-lake-id="u9b20bf3d" id="u9b20bf3d">一个数据页中包含了7个部分，分别是文件头、页头、最小和最大记录、用户记录、空闲空间、页目录以及文件尾。</span></p>
  <p data-lake-id="u7d6fa2e1" id="u7d6fa2e1"><span data-lake-id="u78d8f2c8" id="u78d8f2c8">​</span><br></p>
  <p data-lake-id="ua7c6b340" id="ua7c6b340"><img src="https://cdn.nlark.com/yuque/0/2023/png/5378072/1685250357353-2732251f-5a34-4303-bfd6-d6a7c34471fc.png?x-oss-process=image%2Fwatermark%2Ctype_d3F5LW1pY3JvaGVp%2Csize_27%2Ctext_SmF2YSA4IEd1IFA%3D%2Ccolor_FFFFFF%2Cshadow_50%2Ct_80%2Cg_se%2Cx_10%2Cy_10"></p>
  <p data-lake-id="u32a9e490" id="u32a9e490"><br></p>
  <p data-lake-id="udfa60303" id="udfa60303"><br></p>
  <p data-lake-id="u4e94d426" id="u4e94d426"><br></p>
 </body>
</html>